[INFO] cloning repository https://github.com/masp/nes_emulator
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/masp/nes_emulator" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasp%2Fnes_emulator", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasp%2Fnes_emulator'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b23ae8389a4a6f7b5e1bfe8fb697e38a312ed0a9
[INFO] building masp/nes_emulator against master#881c1ac408d93bb7adaa3a51dabab9266e82eee8 for issue-85264
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmasp%2Fnes_emulator" "/workspace/builds/worker-10/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-10/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/masp/nes_emulator on toolchain 881c1ac408d93bb7adaa3a51dabab9266e82eee8
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/masp/nes_emulator
[INFO] finished tweaking git repo https://github.com/masp/nes_emulator
[INFO] tweaked toml for git repo https://github.com/masp/nes_emulator written to /workspace/builds/worker-10/source/Cargo.toml
[INFO] crate git repo https://github.com/masp/nes_emulator already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded oorandom v11.1.2
[INFO] [stderr]   Downloaded claim v0.3.1
[INFO] [stderr]   Downloaded serde_derive v1.0.112
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 769d5ccfd8416b1cef70d453350680c24ec66fdde0d7971f153cab161ec98202
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "769d5ccfd8416b1cef70d453350680c24ec66fdde0d7971f153cab161ec98202", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "769d5ccfd8416b1cef70d453350680c24ec66fdde0d7971f153cab161ec98202", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "769d5ccfd8416b1cef70d453350680c24ec66fdde0d7971f153cab161ec98202", kill_on_drop: false }`
[INFO] [stdout] 769d5ccfd8416b1cef70d453350680c24ec66fdde0d7971f153cab161ec98202
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 6f8e1a47426db586e2788031cddd0001959e5d8b17fac2dd59efd5b7b7feff39
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "6f8e1a47426db586e2788031cddd0001959e5d8b17fac2dd59efd5b7b7feff39", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.18
[INFO] [stderr]    Compiling syn v1.0.31
[INFO] [stderr]    Compiling version_check v0.9.2
[INFO] [stderr]    Compiling utf8-ranges v1.0.4
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling beef v0.4.4
[INFO] [stderr]    Compiling smallvec v1.4.0
[INFO] [stderr]    Compiling bytes v0.5.5
[INFO] [stderr]    Compiling unicase v2.6.0
[INFO] [stderr]    Compiling quote v1.0.7
[INFO] [stderr]    Compiling logos-derive v0.11.5
[INFO] [stderr]    Compiling enum_string v0.1.0 (/opt/rustwide/workdir/enum_string)
[INFO] [stderr]    Compiling logos v0.11.4
[INFO] [stderr]    Compiling parser_6502 v0.1.0 (/opt/rustwide/workdir/parser_6502)
[INFO] [stderr]    Compiling cpu_6502 v0.1.0 (/opt/rustwide/workdir/cpu_6502)
[INFO] [stdout] error[E0408]: variable `v` is not bound in all patterns
[INFO] [stdout]    --> cpu_6502/src/lib.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 148 |             Arg::Immediate(v) |
[INFO] [stdout]     |                            - variable not in all patterns
[INFO] [stdout] 149 |             Arg::Implicit |
[INFO] [stdout]     |             ^^^^^^^^^^^^^ pattern doesn't bind `v`
[INFO] [stdout] 150 |             Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^ pattern doesn't bind `v`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `is_zero` in this scope
[INFO] [stdout]   --> cpu_6502/src/lib.rs:21:15
[INFO] [stdout]    |
[INFO] [stdout] 21 |         n.z = is_zero(v);
[INFO] [stdout]    |               ^^^^^^^ not found in this scope
[INFO] [stdout]    |
[INFO] [stdout] help: consider importing this function
[INFO] [stdout]    |
[INFO] [stdout] 1  | use std::rt::panic_count::is_zero;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find function `is_negative` in this scope
[INFO] [stdout]   --> cpu_6502/src/lib.rs:22:15
[INFO] [stdout]    |
[INFO] [stdout] 22 |         n.n = is_negative(v);
[INFO] [stdout]    |               ^^^^^^^^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0425]: cannot find value `a` in this scope
[INFO] [stdout]    --> cpu_6502/src/lib.rs:150:85
[INFO] [stdout]     |
[INFO] [stdout] 150 |             Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)),
[INFO] [stdout]     |                                                                                     ^ help: you might have meant to use the available field: `self.a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `&u8` with `{integer}`
[INFO] [stdout]   --> cpu_6502/src/lib.rs:16:36
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn is_zero(v: &u8) -> bool { v == 0 }
[INFO] [stdout]    |                                    ^^ no implementation for `&u8 == {integer}`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PartialEq<{integer}>` is not implemented for `&u8`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_u8` found for mutable reference `&mut Mem` in the current scope
[INFO] [stdout]   --> cpu_6502/src/lib.rs:55:14
[INFO] [stdout]    |
[INFO] [stdout] 55 |         self.store_u8(addr, v1);
[INFO] [stdout]    |              ^^^^^^^^ help: there is an associated function with a similar name: `store_u16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_u8` found for mutable reference `&mut Mem` in the current scope
[INFO] [stdout]   --> cpu_6502/src/lib.rs:56:14
[INFO] [stdout]    |
[INFO] [stdout] 56 |         self.store_u8(addr + 1, v2);
[INFO] [stdout]    |              ^^^^^^^^ help: there is an associated function with a similar name: `store_u16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `overflow_add` found for type `u8` in the current scope
[INFO] [stdout]    --> cpu_6502/src/lib.rs:121:42
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let (new_val, did_overflow) = v1.overflow_add(v2);
[INFO] [stdout]     |                                          ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `overflow_sub` found for type `u8` in the current scope
[INFO] [stdout]    --> cpu_6502/src/lib.rs:129:42
[INFO] [stdout]     |
[INFO] [stdout] 129 |         let (new_val, did_overflow) = v1.overflow_sub(v2);
[INFO] [stdout]     |                                          ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_sub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> cpu_6502/src/lib.rs:142:59
[INFO] [stdout]     |
[INFO] [stdout] 142 |             Arg::IndexedIndirect(a) => self.mem.fetch_u16(a.wrapping_add(self.x)),
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                           |
[INFO] [stdout]     |                                                           expected `u16`, found `u8`
[INFO] [stdout]     |                                                           help: you can convert a `u8` to a `u16`: `a.wrapping_add(self.x).into()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> cpu_6502/src/lib.rs:145:33
[INFO] [stdout]     |
[INFO] [stdout] 137 | /         match arg {
[INFO] [stdout] 138 | |             Arg::Zeropage(a) => *a as Addr,
[INFO] [stdout] 139 | |             Arg::ZeropageX(a) => a.wrapping_add(self.x) as Addr,
[INFO] [stdout] 140 | |             Arg::ZeropageY(a) => a.wrapping_add(self.y) as Addr,
[INFO] [stdout] ...   |
[INFO] [stdout] 144 | |             Arg::Relative(a) => self.pc + a as Addr,
[INFO] [stdout]     | |                                 ------------------- this and all prior arms are found to be of type `u16`
[INFO] [stdout] 145 | |             Arg::Absolute(a) => a,
[INFO] [stdout]     | |                                 ^
[INFO] [stdout]     | |                                 |
[INFO] [stdout]     | |                                 expected `u16`, found `&u16`
[INFO] [stdout]     | |                                 help: consider dereferencing the borrow: `*a`
[INFO] [stdout] ...   |
[INFO] [stdout] 150 | |             Arg::Accumulator => panic!(format!("invalid arg type {:?} for address", a)),
[INFO] [stdout] 151 | |         }
[INFO] [stdout]     | |_________- `match` arms have incompatible types
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0606]: casting `&i8` as `u16` is invalid
[INFO] [stdout]    --> cpu_6502/src/lib.rs:144:43
[INFO] [stdout]     |
[INFO] [stdout] 144 |             Arg::Relative(a) => self.pc + a as Addr,
[INFO] [stdout]     |                                           -^^^^^^^^
[INFO] [stdout]     |                                           |
[INFO] [stdout]     |                                           cannot cast `&i8` as `u16`
[INFO] [stdout]     |                                           help: dereference the expression: `*a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> cpu_6502/src/lib.rs:173:28
[INFO] [stdout]     |
[INFO] [stdout] 165 |           let new_flags = match o {
[INFO] [stdout]     |  _________________________-
[INFO] [stdout] 166 | |             Opcode::TAX => self.assign_reg(self.a, &mut self.x),
[INFO] [stdout] 167 | |             Opcode::TXA => self.assign_reg(self.x, &mut self.a),
[INFO] [stdout] 168 | |             Opcode::TAY => self.assign_reg(self.a, &mut self.y),
[INFO] [stdout] ...   |
[INFO] [stdout] 172 | |             Opcode::DEC => { self.a = self.a.wrapping_sub(1); self.flags.update_nz(&self.a) }
[INFO] [stdout]     | |                                                               ----------------------------- this and all prior arms are found to be of type `CpuFlags`
[INFO] [stdout] 173 | |             Opcode::INX => self.x = self.x.wrapping_add(1),
[INFO] [stdout]     | |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected struct `CpuFlags`, found `()`
[INFO] [stdout] ...   |
[INFO] [stdout] 189 | |             _ => unimplemented!("opcode not supported yet!")
[INFO] [stdout] 190 | |         };
[INFO] [stdout]     | |_________- `match` arms have incompatible types
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope
[INFO] [stdout]    --> cpu_6502/src/lib.rs:181:37
[INFO] [stdout]     |
[INFO] [stdout] 30  | struct Mem {
[INFO] [stdout]     | ---------- method `store_u8` not found for this
[INFO] [stdout] ...
[INFO] [stdout] 181 |             Opcode::STA => self.mem.store_u8(self.resolve_addr(&a), self.a),
[INFO] [stdout]     |                                     ^^^^^^^^ help: there is an associated function with a similar name: `store_u16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope
[INFO] [stdout]    --> cpu_6502/src/lib.rs:182:37
[INFO] [stdout]     |
[INFO] [stdout] 30  | struct Mem {
[INFO] [stdout]     | ---------- method `store_u8` not found for this
[INFO] [stdout] ...
[INFO] [stdout] 182 |             Opcode::STX => self.mem.store_u8(self.resolve_addr(&a), self.x),
[INFO] [stdout]     |                                     ^^^^^^^^ help: there is an associated function with a similar name: `store_u16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `store_u8` found for struct `Mem` in the current scope
[INFO] [stdout]    --> cpu_6502/src/lib.rs:183:37
[INFO] [stdout]     |
[INFO] [stdout] 30  | struct Mem {
[INFO] [stdout]     | ---------- method `store_u8` not found for this
[INFO] [stdout] ...
[INFO] [stdout] 183 |             Opcode::STY => self.mem.store_u8(self.resolve_addr(&a), self.y),
[INFO] [stdout]     |                                     ^^^^^^^^ help: there is an associated function with a similar name: `store_u16`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `status` on type `&Cpu`
[INFO] [stdout]    --> cpu_6502/src/lib.rs:202:33
[INFO] [stdout]     |
[INFO] [stdout] 202 |         let amt = amt + if self.status.c { 1 } else { 0 };
[INFO] [stdout]     |                                 ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `a`, `x`, `y`, `pc`, `sp` ... and 3 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `overflow_add` found for mutable reference `&mut u8` in the current scope
[INFO] [stdout]    --> cpu_6502/src/lib.rs:203:43
[INFO] [stdout]     |
[INFO] [stdout] 203 |         let (new_val, did_overflow) = dst.overflow_add(amt);
[INFO] [stdout]     |                                           ^^^^^^^^^^^^ help: there is an associated function with a similar name: `overflowing_add`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `status` on type `&Cpu`
[INFO] [stdout]    --> cpu_6502/src/lib.rs:204:30
[INFO] [stdout]     |
[INFO] [stdout] 204 |         let mut flags = self.status.update_nz(new_val);
[INFO] [stdout]     |                              ^^^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available fields are: `a`, `x`, `y`, `pc`, `sp` ... and 3 others
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 19 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0308, E0408, E0425, E0599, E0606, E0609.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cpu_6502`
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "6f8e1a47426db586e2788031cddd0001959e5d8b17fac2dd59efd5b7b7feff39", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6f8e1a47426db586e2788031cddd0001959e5d8b17fac2dd59efd5b7b7feff39", kill_on_drop: false }`
[INFO] [stdout] 6f8e1a47426db586e2788031cddd0001959e5d8b17fac2dd59efd5b7b7feff39
